package com.smartleanx.module.hrm.service.employee;

import javax.validation.*;

import com.smartleanx.module.hrm.controller.admin.employee.growth.EmployeeGrowthRecordRespVO;
import com.smartleanx.module.hrm.controller.admin.employee.growth.EmployeeGrowthRecordSaveReqVO;
import com.smartleanx.module.hrm.dal.dataobject.employee.EmployeeGrowthRecordDO;

import java.util.List;

/**
 * 员工成长轨迹 Service 接口
 *
 * @author tengcj
 */
public interface EmployeeGrowthRecordService {

    /**
     * 创建员工成长轨迹
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createEmployeeGrowthRecord(@Valid EmployeeGrowthRecordSaveReqVO createReqVO);

    /**
     * 更新员工成长轨迹
     *
     * @param updateReqVO 更新信息
     */
    void updateEmployeeGrowthRecord(@Valid EmployeeGrowthRecordSaveReqVO updateReqVO);

    /**
     * 删除员工成长轨迹
     *
     * @param id 编号
     */
    void deleteEmployeeGrowthRecord(Long id);

    /**
     * 获得员工成长轨迹
     *
     * @param id 编号
     * @return 员工成长轨迹
     */
    EmployeeGrowthRecordDO getEmployeeGrowthRecord(Long id);

    /**
     * 根据员工id获得员工成长轨迹列表
     *
     * @param employeeId
     * @return
     */
    List<EmployeeGrowthRecordRespVO> getEmployeeGrowthRecordList(Long employeeId);

    void deleteByEmployeeId(Long employeeId);
}
